package com.tech.koufu.action;

import java.io.InputStream;
import java.util.ArrayList;  

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.xmlpull.v1.XmlPullParser;

import android.util.Xml; 

import com.tech.koufu.model.Stock;
import com.tech.koufu.model.StockInfo;

public class PullStockParser {
	public static String parseXmlStocks(InputStream instream) throws Exception {
		String s = null;
		StockInfo stockInfo = null;
		XmlPullParser parser = Xml.newPullParser();// 得到Pull解析器
		parser.setInput(instream, "UTF-8");// 设置下输入流的编码
		int eventType = parser.getEventType();// 得到第一个事件类型
		while (eventType != XmlPullParser.END_DOCUMENT) {// 如果事件类型不是文档结束的话则不断处理事件
			switch (eventType) {
			case (XmlPullParser.START_DOCUMENT):// 如果是文档开始事件
				s = new String();
				break;
			case (XmlPullParser.START_TAG):// 如果遇到标签开始
				String tagName = parser.getName();// 获得解析器当前元素的名称
				if ("dataSource".equals(tagName)) {// 如果当前标签名称是<person>
//					stockInfo = new StockInfo();
					//s = parseToJson(new String(parser.nextText()));
					s = new String(parser.nextText());
//					System.out.println(s.size()+"~~~~~股票个数");
				}

				break;
			case (XmlPullParser.END_TAG):// 如果遇到标签结束
				if ("dataSource".equals(parser.getName())) {// 如果是person标签结束
//					s.add(stockInfo);// 将创建完成的person加入集合
//					stockInfo = null;// 并且置空
				}
				break;
			}
			eventType = parser.next();// 进入下一个事件处理
		}
		return s;
	}
	
	public static ArrayList<Stock> parseToJson(String xml){ 
		ArrayList<Stock> stockInfos = new ArrayList<Stock>();
		try {
			JSONArray josnArray = new JSONArray(xml);
			for(int i=0;i<josnArray.length();i++){
				stockInfos.add(new Stock((JSONObject)josnArray.get(i)));
			}
		} catch (JSONException e) { 
			e.printStackTrace();
		}
		
		return stockInfos;
	}
}
